package com.glodon.paas.test.util;

import java.util.Date;

import com.glodon.paas.account.api.bean.User;
import com.glodon.paas.document.DocumentBaseIT;
import com.glodon.paas.document.service.util.UserProvider;

/**
 * 类UserProviderForUT.java的实现描述：提供用户信息，用于测试
 * 
 * @author wangchen 2013-2-17 上午10:48:40
 */
public class UserProviderForUT implements UserProvider {

    @Override
    public User getUser(String userId) {
        User user = null;
        if (DocumentBaseIT.ownerId.equals(userId)) {
            return createUser("Owner");
        } else if (DocumentBaseIT.userId.equals(userId)) {
            return createUser("User");
        } else if (DocumentBaseIT.adminId.equals(userId)) {
            return createUser("Admin");
        } else if (DocumentBaseIT.unassignedId.equals(userId)) {
            return createUser("Unassigned");
        } else if (DocumentBaseIT.unassignedId.equals(userId)) {
            return createUser("Enter");
        } else if (DocumentBaseIT.unassignedId.equals(userId)) {
            return createUser("Read");
        } else if (DocumentBaseIT.unassignedId.equals(userId)) {
            return createUser("Write");
        } else if (DocumentBaseIT.unassignedId.equals(userId)) {
            return createUser("Delete");
        }
        
        return user;
    }
    
    private User createUser(String userType){
        User user = new User();
        if("owner".equalsIgnoreCase(userType)){
            user.setId(DocumentBaseIT.ownerId);
        }
        else if("user".equalsIgnoreCase(userType)){
            user.setId(DocumentBaseIT.userId);
        }
        else if("enter".equalsIgnoreCase(userType)){
            user.setId(DocumentBaseIT.enterId);
        }
        else if("read".equalsIgnoreCase(userType)){
            user.setId(DocumentBaseIT.readId);
        }
        else if("write".equalsIgnoreCase(userType)){
            user.setId(DocumentBaseIT.writeId);
        }
        else if("delete".equalsIgnoreCase(userType)){
            user.setId(DocumentBaseIT.deleteId);
        }
        user.setAccountName("Test"+userType+"AccountName");
        user.setBirthday(new Date());
        user.setBirthdayType(0);
        user.setCreatedTime(new Date());
        user.setDisplayName("Test"+userType+"DisplayName");
        user.setEmail("test@"+userType+".com");
        return user;
    }

    @Override
    public User currentUser() {
        return null;
    }
}
